﻿using RayDen.Library.Core;
using RayDen.RayEngine.Core.Types;

namespace RayDen.RayEngine.Core.Interface {
    public interface ISampler  {
        Sample GetSample(Sample prevSample = null);

        float GetLazyValue(Sample sample);

        float GetLDValue(Sample sample);

        float NextFloat();

        void Init(int p1, int p2);

        int GetPass();

        int Width { get; }
        int Height { get; }


        long TotalSamples { get; set; }

        float GetLazyValue(Sample sample, int index);
    }

    
}